using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.IO;
using CrystalDecisions.CrystalReports;
using System.Data.SqlClient;


public partial class ReporteProductos : System.Web.UI.Page
{
    ReportDocument reportDoc = new ReportDocument();
    protected void Page_Load(object sender, EventArgs e)
    {
        mostrarReporte();
    }
    protected void ib_reporte_Click(object sender, ImageClickEventArgs e)
    {
        mostrarReporte();
    }
    //Muesta en el reporte el producto con los datos indicados
    protected void mostrarReporte()
    {
        try
        {
            String cadena = (String)ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            SqlConnection conexion = new SqlConnection(cadena);
            string consulta = "";
            string concatena = "";
            SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
            int num = 0;
            if (tb_nombre.Text != string.Empty)
            {
                if (num == 0)
                {
                    consulta = "Select Productos.cod_producto, Productos.nombre, Productos.cod_modelo,Modelo_Productos.descripcion,  Productos.cod_marca, Marcas.descripcion, Productos.cod_familia_producto,Familias_Productos.descripcion, precio_compra, precio_venta FROM Productos JOIN Marcas ON (Marcas.cod_marca=Productos.cod_marca) JOIN Modelo_Productos ON (Productos.cod_modelo=Modelo_Productos.cod_modelo) JOIN Familias_Productos ON (Productos.cod_familia_producto=Familias_Productos.cod_familia_producto) " +
                        "WHERE Productos.nombre like '" + tb_nombre.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                    num++;
                }
                else
                {
                    concatena = " AND Productos.nombre like '" + tb_nombre.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                    num++;
                }
            }
            if (tb_familia.Text != string.Empty)
            {
                if (num == 0)
                {
                    consulta = "Select Productos.cod_producto, Productos.nombre, Productos.cod_modelo,Modelo_Productos.descripcion,  Productos.cod_marca, Marcas.descripcion, Productos.cod_familia_producto,Familias_Productos.descripcion, precio_compra, precio_venta FROM Productos JOIN Marcas ON (Marcas.cod_marca=Productos.cod_marca) JOIN Modelo_Productos ON (Productos.cod_modelo=Modelo_Productos.cod_modelo) JOIN Familias_Productos ON (Productos.cod_familia_producto=Familias_Productos.cod_familia_producto) " +
                        "WHERE Familias_Productos.descripcion like '" + tb_familia.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                    num++;
                }
                else
                {
                    concatena = " AND Familias_Productos.descripcion like '" + tb_familia.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                    num++;
                }
            }
            if (tb_marca.Text != string.Empty)
            {
                if (num == 0)
                {
                    consulta = "Select Productos.cod_producto, Productos.nombre, Productos.cod_modelo,Modelo_Productos.descripcion,  Productos.cod_marca, Marcas.descripcion, Productos.cod_familia_producto,Familias_Productos.descripcion, precio_compra, precio_venta FROM Productos JOIN Marcas ON (Marcas.cod_marca=Productos.cod_marca) JOIN Modelo_Productos ON (Productos.cod_modelo=Modelo_Productos.cod_modelo) JOIN Familias_Productos ON (Productos.cod_familia_producto=Familias_Productos.cod_familia_producto) " +
                        "WHERE Marcas.descripcion like '" + tb_marca.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                    num++;
                }
                else
                {
                    concatena = " AND Marcas.descripcion like '" + tb_marca.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                    num++;
                }
            }
            if (tb_modelo.Text != string.Empty)
            {
                if (num == 0)
                {
                    consulta = "Select Productos.cod_producto, Productos.nombre, Productos.cod_modelo,Modelo_Productos.descripcion,  Productos.cod_marca, Marcas.descripcion, Productos.cod_familia_producto,Familias_Productos.descripcion, precio_compra, precio_venta FROM Productos JOIN Marcas ON (Marcas.cod_marca=Productos.cod_marca) JOIN Modelo_Productos ON (Productos.cod_modelo=Modelo_Productos.cod_modelo) JOIN Familias_Productos ON (Productos.cod_familia_producto=Familias_Productos.cod_familia_producto) " +
                        "WHERE Modelo_Productos.descripcion like '" + tb_modelo.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                    num++;
                }
                else
                {
                    concatena = " AND Modelo_Productos.descripcion like '" + tb_modelo.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                    num++;
                }
            }

            if (tb_nombre.Text.Equals("") && tb_familia.Text.Equals("") && tb_marca.Text.Equals("") && tb_modelo.Text.Equals(""))
            {
                consulta = "Select Productos.cod_producto, Productos.nombre, Productos.cod_modelo,Modelo_Productos.descripcion,  Productos.cod_marca, Marcas.descripcion, Productos.cod_familia_producto,Familias_Productos.descripcion, precio_compra, precio_venta FROM Productos JOIN Marcas ON (Marcas.cod_marca=Productos.cod_marca) JOIN Modelo_Productos ON (Productos.cod_modelo=Modelo_Productos.cod_modelo) JOIN Familias_Productos ON (Productos.cod_familia_producto=Familias_Productos.cod_familia_producto) ";

                da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
            }
            DataSet ds_Productos = new DataSet();
            da.Fill(ds_Productos, "Productos");
            reportDoc.Load(Server.MapPath("~/Reportes/ReporteProducto.rpt"));
            reportDoc.SetDataSource(ds_Productos.Tables["Productos"]);
            Reporte_Productos.ReportSource = reportDoc;
            Reporte_Productos.RefreshReport();
        }
        catch (Exception error)
        {
            error.ToString();
        }
    }
      
    protected void ib_cancelar_Click(object sender, ImageClickEventArgs e)
    {
        tb_nombre.Text = string.Empty;
        tb_familia.Text = string.Empty;
        tb_marca.Text = string.Empty;
        tb_modelo.Text = string.Empty;
        mostrarReporte();
    }
}
